iT邦幫忙

0

30天Leetcode挑戰(7):779 k-th symbol in gramar

  • 分享至 

  • xImage
  •  

碎碎念

這是一個很棒的題目,也是我所期待遇到的東西。當然,也不排除是我太笨啦。

題幹

給予兩個數值,第一個k代表會有幾階的數,一階是0,二階是把0變成01,三階是把每個0變成01,每個1變成10,也就是0110
第二個數t代表你要返回的第幾個引索數,舉例來說k=3 t=1 =>返回1

解題思路

我一開始是笨蛋,想說把所有數值產出來就好了,所以就用了類似遞迴的東西一直去生成新的一階數列
後來請GPT改code的時候,他跟我說看規律就好了
沒錯 人工智慧直接看規律 從根本搞定這個問題
根據觀察我們可以發現位數跟奇偶有關

class Solution:
    def kthGrammar(self, n: int, k: int) -> int:
        if n == 1:
            return 0
        
        # 如果k是偶數
        if k % 2 == 0:
            return 1 - self.kthGrammar(n-1, k//2)
        # 如果k是奇數
        else:
            return self.kthGrammar(n-1, (k+1)//2)

原來,就這麼簡單


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言